package br.com.taskManager.service.imp;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import br.com.taskManager.dao.imp.EnderecoDaoImp;
import br.com.taskManager.dao.imp.UsuarioDaoImp;
import br.com.taskManager.modelo.Usuario;
import br.com.taskManager.service.UsuarioService;

@Service(value="usuarioService")
@Transactional(readOnly=false)
public class UsuarioServiceImp implements UsuarioService{
	
	@Autowired
	private UsuarioDaoImp usuarioDao;
	
	@Autowired
	private EnderecoDaoImp enderecoDao;

	@Override
	public Usuario salvarUsuario(Usuario usuario) {
		enderecoDao.save(usuario.getEndereco());
		usuarioDao.save(usuario);
		return usuario;
	}
	
	public Usuario getUsuario(Integer i){
		return this.getUsuarioDao().getById(i);
	}

	@Override
	public void atualizar(Usuario usuario) {
		this.getUsuarioDao().update(usuario);
	}

	@Override
	public void deletar(Usuario usuario) {
		this.getUsuarioDao().delete(usuario);
	}

	public UsuarioDaoImp getUsuarioDao() {
		return usuarioDao;
	}

	public void setUsuarioDao(UsuarioDaoImp usuarioDao) {
		this.usuarioDao = usuarioDao;
	}

	public EnderecoDaoImp getEnderecoDao() {
		return enderecoDao;
	}

	public void setEnderecoDao(EnderecoDaoImp enderecoDao) {
		this.enderecoDao = enderecoDao;
	}
}
